const server=require("./server/server.js");
//app.js
App({
  onLaunch: function () {
    wx.cloud.init({
      traceUser: true,
      env: "test-99vab"
    });

    wx.getSetting({
      success: ({authSetting})=>{

        //（用户可能会一直反复进入小程序，并且每次进入userinfo都会变空，所以判断授权来获取信息）
        //******判断用户信息有没有授权********
          if(authSetting["scope.userInfo"]){
            //有的话通过这个函数获取用户的信息
              this.getWxUserInfo();
          }else{
              //******没有用户信息就跳到user页面点击按钮去授权********
              //通过弹出一个模态框点击授权，跳转到user页面
              this.showModal();
          }
      },
      fail: ()=>{}
    });
    
  },
  
  getWxUserInfo(){
    wx.getUserInfo({
      withCredentials: 'false',
      lang: 'zh_CN',
      success: (result)=>{
          // console.log(result);//用户基本信息
          //******获取用户信息后需要根据openId查询在后台有没有注册******
          //但是用户信息不包含有openId等私密信息
          // 通过wx.login 获取 code 值从后台换
          // 云服务实现-用户的openId获取
        
          this.userInfo=result.userInfo;//将用户基本信息存入app中的globalData
          //调用云函数
          wx.cloud.callFunction({
              name:"getUserOpenId",
              success:(data)=>{
                  // console.log(data);//返回的数据，包含openId

                this.userInfo.openId=data.result.openid;//将openid存入
                //*******向后台发送请求，查询有没有注册openid*****8
                server.findUserByOpenId(data.result.openid)
                  .then(({result})=>{
                      // console.log(data);//data中的result里的值表示后台中有没有openid
                      // console.log(result);
                      if(result){
                          //****如果查到*****
                          //将后台的唯一id传给userInfo
                          this.userInfo.id=result.id;
                          // console.log(this.userInfo);
                          
                      }else{
                        //******如果后台查不到就引导用户完成注册******
                        // this.userInfo.id="";
                        this.showModal();
                      }
                  })
                  .catch(server.errorFunction);

              }
          });
      },
      fail: (error)=>{
          // console.log(error);
      }
    });
  },

  showModal:()=>{
    wx.showModal({
      title: '授权注册',
      content: '需要完成授权后，才能使用',
      showCancel: true,
      cancelText: '不授权',
      cancelColor: '#000000',
      confirmText: '授权',
      confirmColor: '#3CC51F',
      success: (result) => {
        //点击授权按钮后confirm值为true
        if(result.confirm){
          //跳转的页面为tabBar页面，不能用navigateTo
            wx.switchTab({
              url: '/pages/user/user'
            });
        }
      },
      fail: ()=>{}
    });
  },

  userInfo:null
})